Out of the Tar Pit
ソフトウェアは複雑だが、その複雑さには種類があり、コントロールできる、という主張
解説記事
複雑であるとは、推論が効きにくいか、不可能であること
論文では、複雑性の原因を大きく4つに分けて説明する プログラムサイズ
プログラミング言語がパワフルすぎる
状態とコントロールは絶対になくならない
コンピューターシステムとはユーザーが管理したい状態を制御するものだから
複雑さの種類
「ユーザーが、その言葉を聞いても、それがなんなのかわからないようなものは、すべて付随的と考えるべき」
複雑さを避ける方法
分割する split
状態とロジック
計算できる・導出可能なものはロジックへ
状態と思っていたものもロジックにできたりする
必須なものと付随的なもの
生年月日がユーザーから見て必須、年齢は計算可能なので付随的
付随的なもののうち、有用なものと不要なもの
避ける avoid